package com.foreknow.demo8;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

/**
 * 集合中只能存对象(Object)
 * List<E>集合  <E>表示泛型（约束List集合中只能存放某一种类型的数据） E表示Object
 * 它是一个有序的集合，可以有重复的元素  常用的实现类： ArrayList 是基于数组实现的动态(可以自动扩容)列表
 * 常用的方法：
 *  	add(E e) 将指定的元素追加到此列表的末尾（可选操作）  参数 E表示对象类型
 *      get(int index) 返回此列表中指定位置的元素。
 */
public class ListDemo {
    public static void main(String[] args) {
        //创建一个List集合容器
        List<Integer> list = new ArrayList<>();
        //向容器中添加元素
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        //集合中元素的个数
        System.out.println("集合中元素的个数：" + list.size());
        //如何从集合中获取某一个元素
        Integer i1 =list.get(0);
        System.out.println(i1);
        System.out.println("---------------------如何遍历集合----------------------");
        //如何遍历集合
        //使用for循环遍历
        for(int i = 0;i < list.size();i++){
            Integer ii = list.get(i); //获取集合中的每个元素
            System.out.println(ii);
        }
        System.out.println("---------------------foreach遍历----------------------");
        //使用foreach语法对集合进行遍历
        for (Integer ii:list) {
            System.out.println(ii);
        }
        System.out.println("---------------------可以使用迭代器对集合遍历----------------------");
        Iterator<Integer> iterator =  list.iterator();
        //判断迭代器中是否有下一个元素 iterator.hasNext()
        while (iterator.hasNext()) {
            Integer ii = iterator.next();
            System.out.println(ii);
        }
    }
}
